07.c - Legal-&-Static-Pages
Relevant source files
Purpose and ScopeLink copied!
This document describes the static legal pages in the godeep.wiki application, specifically the Privacy Policy and Terms of Service pages. These pages provide legally required disclosures and service agreements accessible to all users. This document covers their route structure, content organization, shared UI patterns, and metadata configuration.
For information about the landing page and main user interface components, see 2.1. For theming and global layout configuration, see 7.1.
Route Structure and Page OrganizationLink copied!
The application includes two legal pages implemented as Next.js App Router routes:
| Route | File Path | Purpose |
|---|---|---|
/privacy | app/privacy/page.tsx | Privacy Policy disclosure |
/terms | app/terms/page.tsx | Terms of Service agreement |
Both pages follow the same structural pattern: standalone pages with dark theme styling, back navigation to the home page, and content organized into numbered sections.
Diagram: Legal Pages Route Structure
Sources: app/privacy/page.tsx L1-L84
Privacy Policy PageLink copied!
The Privacy Policy page is implemented in the PrivacyPage component and covers data collection, usage, and user rights.
Content StructureLink copied!
The privacy policy is organized into 7 numbered sections:
| Section | Title | Key Content |
|---|---|---|
| 1 | Information We Collect | GitHub username, email, payment info collection |
| 2 | Use of Information | Service provision, transaction processing, no third-party sales |
| 3 | Data Security | Security measures, temporary code storage |
| 4 | Third-Party Services | Stripe (payment), Vercel (hosting) disclosures |
| 5 | Cookies | Cookie usage and browser controls |
| 6 | Your Rights | Data access, correction, deletion rights |
| 7 | Changes to Policy | Update notification procedures |
The page includes a last-updated timestamp: "November 23, 2025" app/privacy/page.tsx L78
Component ImplementationLink copied!
PrivacyPage component structure:
├── Outer container: min-h-screen with dark background
├── Content wrapper: max-w-3xl centered with responsive padding
├── Back navigation link: ArrowLeft icon + "Back to Home"
├── H1 heading: "Privacy Policy"
└── Content sections: <section> elements with h2 subheadings
Diagram: Privacy Policy Component Structure
Sources: app/privacy/page.tsx L4-L84
Key Privacy DisclosuresLink copied!
The privacy policy explicitly states several important commitments:
- No Data Sales: "We do not sell your personal data to third parties" app/privacy/page.tsx L32
- Temporary Storage: "Your code is analyzed in a secure environment and is not stored permanently after the analysis is complete" app/privacy/page.tsx L40-L41
- Third-Party Services: Lists Stripe for payment processing and Vercel for hosting app/privacy/page.tsx L48
These disclosures align with the system's architecture as a repository access provisioning system rather than a permanent code storage platform.
Sources: app/privacy/page.tsx L18-L80
Terms of Service PageLink copied!
The Terms of Service page is implemented in the TermsPage component and defines the legal agreement between godeep.wiki and its users.
Content StructureLink copied!
The terms are organized into 8 numbered sections:
| Section | Title | Key Content |
|---|---|---|
| 1 | Acceptance of Terms | Agreement binding upon service usage |
| 2 | Description of Service | DeepWiki generation, one-time fee model |
| 3 | User Conduct | Lawful use, permission requirements, no code storage |
| 4 | Intellectual Property | Customer owns generated content, godeep owns technology |
| 5 | Disclaimer of Warranties | "As is" service, AI interpretation limitations |
| 6 | Limitation of Liability | No liability for damages |
| 7 | Refund Policy | 100% money-back guarantee if analysis fails |
| 8 | Changes to Terms | Right to update terms with notification |
The page includes the same last-updated timestamp: "November 23, 2025" app/terms/page.tsx L86
Component ImplementationLink copied!
The TermsPage component follows an identical structure to PrivacyPage:
TermsPage component structure:
├── Outer container: min-h-screen with dark background (#0B0C0E)
├── Content wrapper: max-w-3xl centered with responsive padding
├── Back navigation link: ArrowLeft icon + "Back to Home"
├── H1 heading: "Terms of Service"
└── Content sections: <section> elements with h2 subheadings
Diagram: Terms of Service Component Structure
Sources: app/terms/page.tsx L4-L92
Key Legal ProvisionsLink copied!
Several provisions are noteworthy for understanding the service model:
- Service Description: "Provides a service that analyzes GitHub repositories and generates documentation, diagrams, and architectural insights ('DeepWiki'). The Service is provided on a per-repository basis for a one-time fee" app/terms/page.tsx L30-L31
- No Permanent Storage: "We do not store your code after the analysis is complete" app/terms/page.tsx L39-L40
- Ownership: "The generated DeepWiki content belongs to you. The underlying technology, design, and software of godeep.wiki remain the property of godeep.wiki" app/terms/page.tsx L47-L48
- Refund Policy: "100% money-back guarantee if the analysis fails to generate a usable DeepWiki" app/terms/page.tsx L72-L73
- AI Disclaimer: "We do not guarantee that the analysis will be error-free or completely accurate, as it relies on AI interpretation of code" app/terms/page.tsx L56-L57
Sources: app/terms/page.tsx L18-L88
Shared UI Patterns and StylingLink copied!
Both legal pages share identical UI patterns, implemented through consistent Tailwind CSS classes and component structure.
Color SchemeLink copied!
| Element | Tailwind Classes | Color Value | Usage |
|---|---|---|---|
| Background | bg-[#0B0C0E] | #0B0C0E | Page background |
| Primary text | text-slate-300 | Slate 300 | Body text |
| Headings | text-slate-100, text-slate-200 | Slate 100/200 | H1 and H2 headings |
| Secondary text | text-slate-400 | Slate 400 | Section content |
| Accent text | text-slate-500 | Slate 500 | Back link, footer |
| Selection | selection:bg-slate-800 selection:text-slate-100 | Slate 800/100 | Text selection highlight |
| Border | border-slate-800/50 | Slate 800 @ 50% opacity | Footer separator |
Sources: app/privacy/page.tsx L6
Layout ConstantsLink copied!
Both pages use identical layout constraints:
- Container width:
max-w-3xl(48rem / 768px) - Horizontal padding:
px-6(1.5rem) - Vertical padding:
py-12 md:py-20(3rem mobile, 5rem desktop) - Section spacing:
space-y-8(2rem between sections) - Line height:
leading-relaxed(1.625)
Sources: app/privacy/page.tsx L7
Typography HierarchyLink copied!
H1: text-3xl md:text-4xl font-medium text-slate-100 mb-8
H2: text-xl font-medium text-slate-200 mb-4
Body: text-slate-400 leading-relaxed
Footer: text-sm text-slate-500
Sources: app/privacy/page.tsx L16-L18
Back Navigation ComponentLink copied!
Both legal pages implement identical back navigation using Next.js Link and the lucide-react ArrowLeft icon.
Implementation PatternLink copied!
<Link href="/" className="inline-flex items-center text-sm text-slate-500 hover:text-slate-300 transition-colors mb-8"> <ArrowLeft className="w-4 h-4 mr-2" /> Back to Home</Link>
Navigation Behavior:
- Target: Root path
/(landing page) - Icon:
ArrowLeftfromlucide-reactat 16×16px with 8px right margin - Hover state: Text color transitions from
text-slate-500totext-slate-300 - Spacing: 32px bottom margin (
mb-8) separates navigation from heading
Sources: app/privacy/page.tsx L1-L14
Metadata and SEO ConfigurationLink copied!
Global metadata for the application is configured in the root layout, which applies to all pages including the legal pages.
Root Metadata ConfigurationLink copied!
The metadata object in app/layout.tsx defines comprehensive SEO settings:
| Property | Value | Purpose |
|---|---|---|
title.default | "Your Private Code Wiki | godeep.wiki" | Fallback page title |
title.template | "%s | godeep.wiki" | Template for page-specific titles |
description | "Understand any repo instantly..." | Meta description for search engines |
keywords | Array of 7 terms | Search engine keywords |
metadataBase | new URL("https://godeep.wiki") | Base URL for relative paths |
openGraph.type | "website" | Open Graph content type |
twitter.card | "summary_large_image" | Twitter card format |
robots.index | true | Allow search engine indexing |
Sources: app/layout.tsx L11-L56
Keywords ArrayLink copied!
The application targets the following search terms:
keywords: [ "code documentation", "github analysis", "architecture diagrams", "codebase understanding", "developer tools", "llm context", "mermaid charts",]
Sources: app/layout.tsx L18-L26
Social Media ConfigurationLink copied!
Open Graph:
- Locale:
en_US - URL:
https://godeep.wiki - Type:
website - Site name:
godeep.wiki
Twitter Card:
- Card type:
summary_large_image - Creator handle:
@godeepwiki
Sources: app/layout.tsx L30-L43
Favicon and Icon GenerationLink copied!
The application generates a dynamic favicon using Next.js 14's ImageResponse API in edge runtime.
Icon MetadataLink copied!
export const size = { width: 32, height: 32,}export const contentType = "image/png"export const runtime = "edge"
The icon is generated as a 32×32px PNG image in edge runtime for optimal performance.
Sources: app/icon.tsx L4-L11
Icon DesignLink copied!
The favicon displays a white letter "D" on a black background with rounded corners:
Design specifications:
- Character: "D" (for DeepWiki)
- Font size: 24px
- Font weight: 800 (extra bold)
- Background: Black
- Foreground: White
- Border radius: 8px
- Layout: Flexbox centered (both axes)
Diagram: Icon Generation Flow
Sources: app/icon.tsx L1-L38
Icon Component ImplementationLink copied!
export default function Icon() { return new ImageResponse( <div style={{ fontSize: 24, background: "black", width: "100%", height: "100%", display: "flex", alignItems: "center", justifyContent: "center", color: "white", borderRadius: "8px", fontWeight: 800, }} > D </div>, { ...size } )}
The Icon function returns an ImageResponse that renders inline CSS-styled JSX to generate the favicon image at request time.
Sources: app/icon.tsx L14-L38
Analytics and Monitoring IntegrationLink copied!
The root layout integrates third-party analytics and monitoring services that apply to all pages, including legal pages.
Vercel AnalyticsLink copied!
Vercel Analytics is integrated via the @vercel/analytics package:
import { Analytics } from "@vercel/analytics/next"// In RootLayout component:<Analytics />
This component automatically tracks page views, navigation events, and web vitals for all routes.
Sources: app/layout.tsx L4
Cloudflare Web AnalyticsLink copied!
Cloudflare analytics is conditionally integrated using their beacon script:
const cfBeaconToken = process.env.NEXT_PUBLIC_CF_BEACON_TOKEN || "ab3529b8b0844e25bb614474e5a56035"{cfBeaconToken && ( <Script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon={`{"token": "${cfBeaconToken}"}`} strategy="afterInteractive" />)}
Configuration:
- Script URL:
https://static.cloudflareinsights.com/beacon.min.js - Loading strategy:
afterInteractive(loads after page becomes interactive) - Defer:
true(non-blocking script load) - Default token: Hardcoded fallback if environment variable not set
Sources: app/layout.tsx L63-L77
Dark Mode ImplementationLink copied!
Both legal pages and the root layout enforce dark mode through multiple mechanisms:
HTML ClassLink copied!
The root <html> element has the dark class applied:
<html lang="en" className="dark">
This enables Tailwind's dark mode utilities throughout the application.
Sources: app/layout.tsx L66
Background ColorLink copied!
All legal pages explicitly set the dark background color #0B0C0E (very dark blue-gray) rather than relying on CSS variables:
className="min-h-screen bg-[#0B0C0E] text-slate-300"
This ensures consistent dark theme regardless of system preferences or theme toggling.
Sources: app/privacy/page.tsx L6
Legal Page Content ComparisonLink copied!
Structural DifferencesLink copied!
| Aspect | Privacy Policy | Terms of Service |
|---|---|---|
| Number of sections | 7 | 8 |
| Last updated date | November 23, 2025 | November 23, 2025 |
| Footer border | border-slate-800/50 | border-slate-800/50 |
| Import statements | Link, ArrowLeft | Link, ArrowLeft |
Both pages are structurally identical except for content and number of sections.
Content Focus DifferencesLink copied!
Privacy Policy emphasizes:
- Data collection and usage
- Security measures
- Third-party service disclosures
- User rights (GDPR-style)
Terms of Service emphasizes:
- Legal binding agreement
- Service description and limitations
- Intellectual property ownership
- Liability disclaimers and refund policy
Sources: app/privacy/page.tsx L18-L80
Accessibility ConsiderationsLink copied!
Both legal pages implement several accessibility features:
- Semantic HTML: Proper use of
<h1>,<h2>,<section>elements - Descriptive headings: Clear hierarchy with numbered sections
- Link text: "Back to Home" is explicit (not "click here")
- Color contrast: Slate color scale provides sufficient contrast
- Responsive text: Mobile-responsive font sizes (
text-3xl md:text-4xl) - Line height:
leading-relaxedimproves readability - Focus states: Native browser focus indicators on links
Sources: app/privacy/page.tsx L1-L84
Page Load PerformanceLink copied!
The legal pages are optimized for fast loading:
- Static rendering: Both pages export default functions without data fetching, enabling static generation at build time
- No client-side JavaScript: Pure server-rendered content (except root layout analytics)
- Icon component: Uses
lucide-reacticons, which are tree-shakeable - Edge runtime: Icon generation runs in edge runtime for minimal latency
- Minimal CSS: Tailwind utility classes produce minimal CSS output
The runtime = "edge" configuration in the icon component enables deployment to Vercel's edge network for global distribution.
Sources: app/icon.tsx L4
Refresh this wiki
Last indexed: 23 November 2025 (922b35)
On this page
- Legal & Static Pages
- Purpose and Scope
- Route Structure and Page Organization
- Privacy Policy Page
- Content Structure
- Component Implementation
- Key Privacy Disclosures
- Terms of Service Page
- Content Structure
- Component Implementation
- Key Legal Provisions
- Shared UI Patterns and Styling
- Color Scheme
- Layout Constants
- Typography Hierarchy
- Back Navigation Component
- Implementation Pattern
- Metadata and SEO Configuration
- Root Metadata Configuration
- Keywords Array
- Social Media Configuration
- Favicon and Icon Generation
- Icon Metadata
- Icon Design
- Icon Component Implementation
- Analytics and Monitoring Integration
- Vercel Analytics
- Cloudflare Web Analytics
- Dark Mode Implementation
- HTML Class
- Background Color
- Legal Page Content Comparison
- Structural Differences
- Content Focus Differences
- Accessibility Considerations
- Page Load Performance
Ask Devin about godeep.wiki-jb
Syntax error in text
mermaid version 11.4.1